#ifndef WIFI_MANAGER_H
#define WIFI_MANAGER_H

#include "esp_event.h"
#include "esp_wifi.h"
#include "freertos/event_groups.h"

#ifdef __cplusplus
extern "C" {
#endif

// WiFi连接状态
typedef enum {
    WIFI_DISCONNECTED,
    WIFI_CONNECTING,
    WIFI_CONNECTED,
    WIFI_CONNECTION_FAILED
} wifi_status_t;

// WiFi事件回调函数类型
typedef void (*wifi_event_callback_t)(wifi_status_t status);

//初始化WiFi管理器
void wifi_manager_init(const char *ssid, const char *password);

//启动WiFi连接
void wifi_manager_start(void);

//停止WiFi连接
void wifi_manager_stop(void);

//获取当前WiFi状态
wifi_status_t wifi_manager_get_status(void);

//注册WiFi状态变化回调
void wifi_manager_register_callback(wifi_event_callback_t callback);

//获取IP地址,返回点分十进制格式的IP地址字符串
const char *wifi_manager_get_ip(void);

// 在获取网关IP地址
const char *wifi_manager_get_gw_ip(void);

#ifdef __cplusplus
}
#endif

#endif // WIFI_MANAGER_H